import router from '@/router'
import store from '@/store'
import { getToken } from '@/utils/modules/login'

router.beforeEach((to, from, next) => {
  // 1. 先判断是否是登陆页面，如果是登陆 直接next
  if (to.path === '/login') {
    next()
  } else {
    // 2. 不是登陆页面, 判断token，
    if(getToken()) { // 3. 取到token, 说明用户已经登陆
      if (!store.permission.state.roles.length) {
        // 如果是空数组，说明还没有请求过用户信息。触发请求数据store
        store.permission.dispatch('GetUserInfo').then(res => {
          // 请求到用户信息？
          // 触发权限判断逻辑
          store.permission.dispatch('GeneratorRoutes').then(result => {
            // 使用addRoutes
            router.addRoutes(store.permission.state.userRoutes)
          })
        })
      }
       // 4. 判断 用户是否已经获取到用户的个人信息，如果获取到，就不再获取了；
       // 5. 去获取用户的个人信息
       // 6. 获取到个人信息之后呢。更新用户权限路由信息
    }
  }
})
